package com.wondertek.poms.service.vo;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.wondertek.poms.common.utils.validate.GroupType;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.Range;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import javax.validation.groups.Default;

/**
 * <p><b>ProductInfoPackageVo Description:</b> ProductInfoPackageVo类  对应 product_info_package-二级产品信息  表</p>
 * @author 窦再兴
 * <p><b>DATE</b> 2020-10-19 15:14:14</p>
 */
 @Data
public class ProductInfoPackageVo {
	
	/**
	 * <b>Fields</b> createDate : 创建时间
	 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private java.time.LocalDateTime createDate;
	
	/**
	 * <b>Fields</b> createdBy : 创建人
	 */
	/*@NotBlank(message = "创建人不能为空", groups = {Default.class})
	@Length(message = "创建人长度不能超过128个字节", max=128, groups = {Default.class, GroupType.Update.class})
	private String createdBy;*/
	
	/**
	 * <b>Fields</b> lastUpdateDate : 更新时间
	 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	private java.time.LocalDateTime lastUpdateDate;
	
	/**
	 * <b>Fields</b> lastOperator : 更新人
	 */
	@Length(message = "更新人长度不能超过128个字节", max=128, groups = {Default.class, GroupType.Update.class})
	private String lastOperator;
	
	/**
	 * <b>Fields</b> productInfoPackageId : 二级产品id
	 */
	private Long productInfoPackageId;
	
	/**
	 * <b>Fields</b> productInfoPackageName : 二级产品名
	 */
	@Length(message = "二级产品名长度不能超过128个字节", max=128, groups = {Default.class, GroupType.Update.class})
	private String productInfoPackageName;
	
	/**
	 * <b>Fields</b> productInfoPackageAlias : 二级产品别名
	 */
	/*@Length(message = "二级产品别名长度不能超过128个字节", max=128, groups = {Default.class, GroupType.Update.class})
	private String productInfoPackageAlias;*/
	
	/**
	 * <b>Fields</b> description : 描述
	 */
	/*@Length(message = "描述长度不能超过3,072个字节", max=3072, groups = {Default.class, GroupType.Update.class})
	private String description;*/
	
	/**
	 * <b>Fields</b> status : 状态
	 */
	@Length(message = "状态长度不能超过128个字节", max=128, groups = {Default.class, GroupType.Update.class})
	private String status;
	
	/**
	 * <b>Fields</b> prdInfos : 商品包信息
	 */
	@Length(message = "商品包信息长度不能超过3,072个字节", max=3072, groups = {Default.class, GroupType.Update.class})
	private String prdInfos;
	
	/**
	 * <b>Fields</b> firstProductInfoPackageId : 一级产品id
	 */
	/*@NotBlank(message = "一级产品id不能为空", groups = {Default.class})
	@Pattern(regexp="[0-9]*", message="一级产品Id只能为数字" ,groups = {Default.class, GroupType.Update.class, GroupType.Delete.class})
	private String firstProductInfoPackageId;*/
	@NotNull
	private Long firstProductInfoPackageId;

	/**
	 * <b>Fields</b> firstProductInfoPackageName : 一级产品名
	 */
	@Length(message = "一级产品名长度不能超过128个字节", max=128, groups = {Default.class, GroupType.Update.class})
	private String firstProductInfoPackageName;
	
	/**
	 * <b>Fields</b> type : 类型
	 */
	@Range(message = "二级产品类型 范围是[1-3]", min=1, max=3, groups = {Default.class})
	private Integer type;
	
	/**
	 * <b>Fields</b> systemFlag : 系统标志位
	 */
	private Long systemFlag;


	//private Integer productInfoPackageType;

}